STMX
High-performance transactional memory for Common Lisp
STMX is a high-performance Common Lisp library for composable Transactional Memory (TM), a concurrency control mechanism aimed at making concurrent programming easier to write and understand.
Instead of traditional lock-based programming, one programs with atomic memory transactions: if a memory transaction returns normally it gets committed, if instead it signals an error (Lisp slang for throwing an exception) it is rolled back.
Memory transactions can safely run in parallel in different threads, are re-executed from the beginning in case of conflicts or if consistent reads cannot be guaranteed, and effects of a transaction are not visible from other threads until it commits.
STMX gives freedom from deadlocks, automatic rollback on failure, and it aims at resolving the tension between granularity and concurrency.